import { OperatorTypeEnums, ConditionsTypeEnums, OrderEnums } from "@/types/wrapper-enums"
import type { QueryWrapper } from "@/types/wrappertypes"

/**
 * 选择部门组件配置
 * @param props
 * @param emit
 * @param chooseServiceDialogTableRef
 */
export const departmentConfig = (departmentId: string) => {
  //展示列表页，字段配置
  const _dept_config_columns = [
    { prop: 'id', label: 'ID', width: 300 },
    { prop: 'deptName', label: '部门名称' },
    { prop: 'deptLevelPath', label: '部门路径' },
    { prop: 'deptRemark', label: '备注' }
  ]

  const _dept_query_wrapper_config: QueryWrapper =
    //编辑页面，不查询当前数据
    departmentId ?
      {
        page: { pageNum: 1, pageSize: 10 },
        condition: [{
          field: 'id', // 字段名（对应后端实体字段）
          operator: OperatorTypeEnums.WRAPPER_CONDITION_TYPE_NEQ, // 操作符
          value: [departmentId], // 值
          valueType: ConditionsTypeEnums.WRAPPER_CONDITION_TYPE_STRING, // 值类型（特殊类型需转换）
        }], //数据参数
        sort: [{ filed: 'dept_level_path', orderType: OrderEnums.WRAPPER_ORDER_DESC }] //排序参数
      }
      //新增页面查询全部数据
      :
      {
        page: { pageNum: 1, pageSize: 10 },
        condition: [], //数据参数
        sort: [{ filed: 'dept_level_path', orderType: OrderEnums.WRAPPER_ORDER_DESC }] //排序参数
      }
      return {
        _dept_config_columns,
        _dept_query_wrapper_config,
      }
}
/**
 * 直属领导选择配置
 * @param staffId
 * @returns
 */
export const staffManagerConfig = (staffId: string) => {
  //展示列表页，字段配置
  const _staff_config_columns = [
    { prop: 'id', label: 'ID', width: 300 },
    { prop: 'staffName', label: '员工名称' },
    { prop: 'staffCode', label: '员工编号' },
  ]

  const _staff_query_wrapper_config: QueryWrapper =
    //编辑页面，不查询当前数据
    staffId ?
      {
        page: { pageNum: 1, pageSize: 10 },
        condition: [{
          field: 'id', // 字段名（对应后端实体字段）
          operator: OperatorTypeEnums.WRAPPER_CONDITION_TYPE_NEQ, // 操作符
          value: [staffId], // 值
          valueType: ConditionsTypeEnums.WRAPPER_CONDITION_TYPE_STRING, // 值类型（特殊类型需转换）
        }], //数据参数
        sort: [{filed:'dept_id',orderType:OrderEnums.WRAPPER_ORDER_DESC},{ filed: 'staff_name', orderType: OrderEnums.WRAPPER_ORDER_DESC },] //排序参数
      }
      //新增页面查询全部数据
      :
      {
        page: { pageNum: 1, pageSize: 10 },
        condition: [], //数据参数
        sort: [{filed:'dept_id',orderType:OrderEnums.WRAPPER_ORDER_DESC},{ filed: 'staff_name', orderType: OrderEnums.WRAPPER_ORDER_DESC },] //排序参数
      }
      return {
        _staff_config_columns,
        _staff_query_wrapper_config,
      }
}